package uniandes.cupi2.joy_graph.mundo;

import uniandes.cupi2.collections.grafo.IVertice;
import uniandes.cupi2.collections.lista.Lista;

/**
 * Interfaz que modela un cliente
 *
 */
public interface ICliente extends IVertice<String>{
	
	/**
	 * Metodo que retorna la IP de un cliente
	 * @return la IP que identificadora del amigo
	 */
	public String getIP ( );

	/**
	 * Metodo que retorna la lista de amigos del cliente
	 * @return lista de amigos del cliente
	 */
	public Lista<String> getAmigos ( );

	/**
	 * Metodo que retorna los archivos de un cliente
	 * @return lista de archivos del cliente
	 */
	public Lista<IArchivo> getArchivos ( );

	/**
	 * Metodo que agrega un amigo al cliente
	 * @param ip del nuevo amigo.
	 */
	public void addAmigo ( String ip );

	/**
	 * Metodo que agrega un archivo a un cliente
	 * @param nombre del archivo
	 */
	public void addArchivo ( IArchivo archivo);


}
